﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IDocumentRepository.cs" company="DST Nexdox">
//   Copyright (c) DST Nexdox. All rights reserved.
// </copyright>
// <summary>
//   Defines the IDocumentRepository type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace UnityRepository.Interfaces
{
    using System;
    using System.Collections.Generic;
    using Entities;
    using Repository;

    public interface IDocumentRepository : IRepository<Document>
    {
      Document GetDocument(Int32 id);

      Document GetDocument(String documentId);

      IList<Document> GetDocuments(String grid);

      IList<Document> GetDocumentsIncludingCheckOutEntity(String grid);

      IList<Document> GetDocumentsIncludingApprovalRejectionAndHouseHoldEntities(String grid);

      Int32 GetDocumentsCount(String grid);

      IEnumerable<Document> GetDocuments(IEnumerable<Int32> ids);

      IEnumerable<Document> GetDocuments(IEnumerable<String> documentIds);

      IList<Document> GetDocumentsWithApprovalAndRejectionEntities(String grid);

      IList<Document> GetUnApprovedDocuments(String grid);

      IList<Document> GetApprovedDocuments(String grid);

      Int32 GetUnApprovedDocumentsCount(String grid);

      Int32 GetApprovedDocumentsCount(String grid);

      IList<Document> GetApprovedAndNotExported();

      IList<KpiReportData> GetDocuments(Int32 mancoId, DateTime startDate, DateTime endDate);

      IList<Document> GetDocumentsForBasket(String cartId);
    }
}
